package com.xiguanlezz.cn.api.naming.pojo;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;

/**
 * @Author：习惯了种种
 * @CreateDate：2024/11/16 16:50
 * @Description：服务实例类实现
 */
@Setter
@Getter
public class Instance implements Serializable {
    private static final long serialVersionUID = 8723417160913613875L;

    // 服务实例名
    private String serviceName;

    // 服务实例的集群名
    private String clusterName;

    // 地址信息
    private String ip;
    private int port;

    // 用于负载均衡
    private double weight = 1.0;

    // 服务健康状态
    private boolean healthy = true;

    // 是否启用该实例
    private boolean enabled = true;

    // ephemeral为true代表是临时实例，不会将实例信息写入数据库，而是直接放到内存中
    // ephemeral为false代表是持久化实例，会经过jraft包装后，将数据写入到数据库
    private boolean ephemeral = true;

    public String toInetAddr() {
        return ip + ":" + port;
    }

}
